Measurement exploratory data analysis
from tabulate import tabulate
from IPython.display import Markdown, HTML
import matplotlib.pylab as plt
from typing import List, Tuple
import pandas as pd
import numpy as np
from scipy.signal import find_peaks
from scipy.signal import butter, lfilter
from tsfel.feature_extraction.features import fundamental_frequency
import os
import sys
sys.path.append('../../')
from feature import mafaulda as src
from feature import discovery as fdiscovery
pd.set_option("display.notebook_repr_html", False)
Define data sources
DIR = '../../air_conditioning/'
file_list = [
DIR + 'excool_digitalis/high_pressure_pump_40percent__1.tsv',
DIR + 'excool_digitalis/high_pressure_pump_40percent__2.tsv',
DIR + 'excool_digitalis/high_pressure_pump_40percent_speed_up__3.tsv',
DIR + 'excool_digitalis/high_pressure_pump_80percent__4.tsv',
DIR + 'shc2/compressor_shc2_klima4_bad.tsv',
DIR + 'shc2/compressor_shc2_klima5_good.tsv',
DIR + 'vertiv_digitalis/compressor_top_1.tsv',
DIR + 'vertiv_digitalis/compressor_top_2.tsv',
DIR + 'vertiv_digitalis/compressor_top_3.tsv',
DIR + 'vertiv_digitalis/compressor_base.tsv',
DIR + 'vertiv_digitalis/compressor_side.tsv'
]
Fs = 1160 # 1160 Hz +/-150 Hz (1020 - 1340 Hz)
file_list = [
DIR + 'fan/speeds/1_still.tsv',
DIR + 'fan/speeds/2_still.tsv',
DIR + 'fan/speeds/3_still.tsv',
DIR + 'fan/speeds/1_up.tsv',
DIR + 'fan/speeds/2_up.tsv',
DIR + 'fan/speeds/3_up.tsv',
DIR + 'fan/speeds/1_down.tsv',
DIR + 'fan/speeds/2_down.tsv',
DIR + 'fan/speeds/3_down.tsv',
]
Fs = 2500
T_WAVEFORM = 5
T_SEC = T_WAVEFORM
NFFT = 1024
DATASET = []
Import dataset
for filename in file_list:
ts = pd.read_csv(filename, delimiter='\t', index_col=False, header=None, names=['x', 'y', 'z'])
# Calculate amplitude in m/s^2 Beaglebone Black ADC and ADXL335 resolution (VIN 1.8V, 12bits)
for dim in ts.columns:
ts[dim] = ts[dim] * (1800 / 4096) # ADC to mV
ts[dim] = (ts[dim] / 180) * 9.81 # mV to m/s^2 (180 mV/g)
ts[dim] -= ts[dim].mean()
ts['t'] = ts.index * (1 / Fs)
ts.set_index('t', inplace=True)
DATASET.append((os.path.basename(filename), ts))
for name, ts in DATASET:
display(Markdown(f'**{name}**'))
ts.info()
print()
1_still.tsv
<class 'pandas.core.frame.DataFrame'> Index: 38201 entries, 0.0 to 15.280000000000001 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 38201 non-null float64 1 y 38200 non-null float64 2 z 38200 non-null float64 dtypes: float64(3) memory usage: 1.2 MB
2_still.tsv
<class 'pandas.core.frame.DataFrame'> Index: 38201 entries, 0.0 to 15.280000000000001 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 38201 non-null float64 1 y 38200 non-null float64 2 z 38200 non-null float64 dtypes: float64(3) memory usage: 1.2 MB
3_still.tsv
<class 'pandas.core.frame.DataFrame'> Index: 38201 entries, 0.0 to 15.280000000000001 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 38201 non-null float64 1 y 38200 non-null float64 2 z 38200 non-null float64 dtypes: float64(3) memory usage: 1.2 MB
1_up.tsv
<class 'pandas.core.frame.DataFrame'> Index: 38201 entries, 0.0 to 15.280000000000001 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 38201 non-null float64 1 y 38200 non-null float64 2 z 38200 non-null float64 dtypes: float64(3) memory usage: 1.2 MB
2_up.tsv
<class 'pandas.core.frame.DataFrame'> Index: 38201 entries, 0.0 to 15.280000000000001 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 38201 non-null float64 1 y 38200 non-null float64 2 z 38200 non-null float64 dtypes: float64(3) memory usage: 1.2 MB
3_up.tsv
<class 'pandas.core.frame.DataFrame'> Index: 38201 entries, 0.0 to 15.280000000000001 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 38201 non-null float64 1 y 38200 non-null float64 2 z 38200 non-null float64 dtypes: float64(3) memory usage: 1.2 MB
1_down.tsv
<class 'pandas.core.frame.DataFrame'> Index: 38201 entries, 0.0 to 15.280000000000001 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 38201 non-null float64 1 y 38200 non-null float64 2 z 38200 non-null float64 dtypes: float64(3) memory usage: 1.2 MB
2_down.tsv
<class 'pandas.core.frame.DataFrame'> Index: 38201 entries, 0.0 to 15.280000000000001 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 38201 non-null float64 1 y 38200 non-null float64 2 z 38200 non-null float64 dtypes: float64(3) memory usage: 1.2 MB
3_down.tsv
<class 'pandas.core.frame.DataFrame'> Index: 38201 entries, 0.0 to 15.280000000000001 Data columns (total 3 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 x 38201 non-null float64 1 y 38200 non-null float64 2 z 38200 non-null float64 dtypes: float64(3) memory usage: 1.2 MB
for name, ts in DATASET:
display(Markdown(f'**{name}**'))
display(tabulate(ts.describe(), headers='keys', tablefmt='html'))
1_still.tsv
| x | y | z | |
|---|---|---|---|
| count | 38201 | 38200 | 38200 |
| mean | -2.40499e-15 | 3.95579e-15 | 3.23185e-15 |
| std | 0.875637 | 1.2639 | 0.0920418 |
| min | -9.07143 | -2.52106 | -0.348954 |
| 25% | -0.593063 | -1.108 | -0.061552 |
| 50% | 0.0056921 | -0.00628912 | 0.0102986 |
| 75% | 0.580497 | 1.11937 | 0.058199 |
| max | 1.96961 | 2.43663 | 0.345601 |
2_still.tsv
| x | y | z | |
|---|---|---|---|
| count | 38201 | 38200 | 38200 |
| mean | 5.15893e-15 | 6.06082e-15 | 2.94447e-15 |
| std | 2.56549 | 2.48179 | 0.322518 |
| min | -9.24575 | -3.73282 | -0.952338 |
| 25% | -2.44389 | -2.63111 | -0.281733 |
| 50% | 0.430129 | 0.0752644 | 0.00566968 |
| 75% | 2.27429 | 2.56608 | 0.269122 |
| max | 4.04661 | 3.66779 | 0.987628 |
3_still.tsv
| x | y | z | |
|---|---|---|---|
| count | 38201 | 38200 | 38200 |
| mean | 2.19072e-15 | -3.27184e-16 | 1.05735e-14 |
| std | 2.15206 | 2.64354 | 0.396043 |
| min | -9.32173 | -4.12174 | -0.786905 |
| 25% | -2.13667 | -2.58893 | -0.379752 |
| 50% | -0.244608 | -0.0502045 | 0.00345146 |
| 75% | 1.95881 | 2.56635 | 0.362704 |
| max | 3.92273 | 4.21293 | 0.841708 |
1_up.tsv
| x | y | z | |
|---|---|---|---|
| count | 38201 | 38200 | 38200 |
| mean | 7.1722e-16 | 1.16068e-15 | -4.63229e-15 |
| std | 0.851834 | 1.19633 | 0.160765 |
| min | -9.19537 | -2.62078 | -0.818255 |
| 25% | -0.381696 | -0.704763 | -0.0757992 |
| 50% | 0.00150719 | -0.010207 | -0.00394865 |
| 75% | 0.408661 | 0.756199 | 0.0679019 |
| max | 2.01332 | 2.57641 | 0.930109 |
2_up.tsv
| x | y | z | |
|---|---|---|---|
| count | 38201 | 38200 | 38200 |
| mean | 1.32693e-15 | -5.37892e-15 | 3.77964e-16 |
| std | 2.54069 | 2.40738 | 0.506515 |
| min | -9.66708 | -4.29866 | -1.69449 |
| 25% | -1.97907 | -2.23894 | -0.305381 |
| 50% | 0.00879927 | 0.0123751 | 0.0778218 |
| 75% | 1.99667 | 2.16789 | 0.341274 |
| max | 5.58919 | 4.61081 | 1.44298 |
3_up.tsv
| x | y | z | |
|---|---|---|---|
| count | 38201 | 38200 | 38200 |
| mean | 1.09015e-15 | -3.60256e-15 | 1.23954e-15 |
| std | 1.69941 | 2.35114 | 0.38339 |
| min | -9.81719 | -4.07792 | -0.81214 |
| 25% | -1.53042 | -2.18586 | -0.333137 |
| 50% | -0.0694594 | 0.0415091 | 0.00216618 |
| 75% | 1.3436 | 2.10123 | 0.337469 |
| max | 3.93022 | 4.23279 | 1.12783 |
1_down.tsv
| x | y | z | |
|---|---|---|---|
| count | 38201 | 38200 | 38200 |
| mean | 6.07666e-15 | -9.52239e-15 | -2.13758e-15 |
| std | 0.276292 | 0.355092 | 0.0934928 |
| min | -9.08741 | -2.01469 | -0.868043 |
| 25% | -0.0342404 | -0.0268261 | -0.0297866 |
| 50% | -0.0102902 | -0.0028759 | 0.0181137 |
| 75% | 0.01366 | 0.0210743 | 0.0420639 |
| max | 3.34274 | 2.05684 | 0.664769 |
2_down.tsv
| x | y | z | |
|---|---|---|---|
| count | 38201 | 38200 | 38200 |
| mean | -3.53755e-15 | 4.22792e-16 | 2.48355e-15 |
| std | 0.911499 | 0.87873 | 0.242263 |
| min | -9.16459 | -3.82467 | -1.76085 |
| 25% | -0.0156161 | -0.0405354 | -0.0124892 |
| 50% | 0.00833407 | 0.007365 | 0.0354112 |
| 75% | 0.0322843 | 0.0313152 | 0.0833116 |
| max | 4.89417 | 3.9352 | 1.56822 |
3_down.tsv
| x | y | z | |
|---|---|---|---|
| count | 38201 | 38200 | 38200 |
| mean | 3.38727e-15 | -9.63697e-16 | -5.49685e-15 |
| std | 0.676631 | 0.924902 | 0.236818 |
| min | -9.08527 | -3.8726 | -3.24596 |
| 25% | -0.0321006 | -0.0405711 | -0.0126823 |
| 50% | 0.0157998 | 0.00732926 | 0.0591683 |
| 75% | 0.03975 | 0.0552297 | 0.0831185 |
| max | 3.77598 | 4.22256 | 7.81903 |
Time domain waveform
axis = ['x', 'y', 'z']
for name, ts in DATASET:
display(Markdown(f'**{name}**'))
ax = ts[axis].plot(figsize=(20, 8), grid=True, subplots=True)
for i, axname in enumerate(axis):
ax[i].set_xlabel('Time [s]')
ax[i].set_ylabel(f'Amplitude ({axname}) [m/s^2]')
plt.show() # plt.savefig('waveform.png')
1_still.tsv
2_still.tsv
3_still.tsv
1_up.tsv
2_up.tsv
3_up.tsv
1_down.tsv
2_down.tsv
3_down.tsv
Time domain waveform zoom detail
axis = ['x', 'y', 'z']
for name, ts in DATASET:
display(Markdown(f'**{name}**'))
ax = (ts[axis].iloc[int(T_WAVEFORM*Fs):int(T_WAVEFORM*Fs)+Fs]
.plot(figsize=(20, 10), grid=True, subplots=True))
for i, axname in enumerate(axis):
ax[i].set_xlabel('Time [s]')
ax[i].set_ylabel(f'Amplitude ({axname}) [m/s^2]')
plt.show() # plt.savefig('waveform_zoom.png')
1_still.tsv
2_still.tsv
3_still.tsv
1_up.tsv
2_up.tsv
3_up.tsv
1_down.tsv
2_down.tsv
3_down.tsv
def spectogram(x):
fig, ax = plt.subplots(figsize=(15, 4))
cmap = plt.get_cmap('inferno')
pxx, freqs, t, im = plt.specgram(
x, NFFT=NFFT, Fs=Fs,
detrend='mean',
mode='magnitude', scale='dB',
cmap=cmap, vmin=-60
)
fig.colorbar(im, aspect=20, pad=0.04)
ax.set_xlabel('Time [s]')
ax.set_ylabel('Frequency [Hz]')
src.resolution_calc(Fs, NFFT)
return freqs, pxx
def window_idx(t):
return (Fs * t) // NFFT + 1
def spectrum_slice(freqs, Pxx, t):
fig, ax = plt.subplots(2, 1, figsize=(20, 8))
n = window_idx(t)
dB = 20 * np.log10(Pxx.T[n] / 0.000001)
ax[0].plot(freqs, dB) # 1 dB = 1 um/s^2
ax[0].grid(True)
ax[0].set_xlabel('Frequency [Hz]')
ax[0].set_ylabel('Amplitude [dB]')
ax[1].plot(freqs, Pxx.T[n])
ax[1].grid(True)
ax[1].set_xlabel('Frequency [Hz]')
ax[1].set_ylabel('Amplitude [m/s^2]')
return n
def get_max_frequency(freqs, Pxx, i):
max_freq = freqs[np.argmax(Pxx.T[i])]
return max_freq
def get_peaks(freqs, Pxx, i, top=5):
amplitudes = Pxx.T[i]
peaks, _ = find_peaks(amplitudes, distance=3)
fundamental = get_max_frequency(freqs, Pxx, i)
f_top = freqs[peaks[np.argsort(amplitudes[peaks])]][::-top]
y_top = np.sort(amplitudes[peaks])[::-top]
return pd.DataFrame({
'f': f_top,
'y': y_top,
'1x': f_top / fundamental
})
def butter_bandpass_filter(data, lowcut, highcut, fs, order=5):
b, a = butter(order, [lowcut, highcut], fs=fs, btype='band')
y = lfilter(b, a, data)
return y
def get_spectrograms(DATASET: List[pd.DataFrame], axis: str) -> list:
spectrograms = []
for name, ts in DATASET:
base_freq = fundamental_frequency(ts[axis], Fs)
display(Markdown(f'**{name}** *({axis.upper()} axis, Fundamental = {base_freq:.4f} Hz)*'))
freqs, Pxx = spectogram(ts['x'])
spectrograms.append((name, freqs, Pxx))
plt.show() # plt.savefig(f'x_axis_fft_{NFFT}.png')
return spectrograms
def show_spectrogram_detail(spectrograms: list, axis: str, t: float):
for name, freqs, Pxx in spectrograms:
display(Markdown(f'**{name}** ({axis.upper()} axis @ {t}s)'))
i_window = spectrum_slice(freqs, Pxx, t)
# Incorrect fundamental frequency:
# print(fdiscovery.harmonic_product_spectrum(freqs, Pxx.T[i_window]))
plt.show() #plt.savefig(f'x_axis_fft_{NFFT}_at_{T_SEC}s.png')
def show_mms_peaks(spectrograms: list, axis: str, t: float):
for name, freqs, Pxx in spectrograms:
display(Markdown(f'**{name}** ({axis.upper()} axis @ {t}s)'))
i_window = window_idx(t)
peaks = fdiscovery.mms_peak_finder(Pxx.T[i_window])
fig, ax = plt.subplots(1, 1, figsize=(15, 3))
ax.grid(True)
ax.plot(freqs, Pxx.T[i_window])
ax.scatter(freqs[peaks], Pxx.T[i_window][peaks], marker='^', color='red')
ax.set_xlabel('Frequency [Hz]')
plt.show()
def show_harmonic_series(spectrograms: list, axis: str, t: float):
# https://stackoverflow.com/questions/1982770/changing-the-color-of-an-axis
for name, freqs, Pxx in spectrograms:
display(Markdown(f'**{name}** ({axis.upper()} axis @ {t}s)'))
i_window = window_idx(t)
h_series = fdiscovery.harmonic_series_detection(freqs, Pxx.T[i_window], Fs, NFFT)
# Find best (sum of harmonics' amplitudes in the largest)
max_harmonic_amp_idx = np.argmax([
sum([h[1] for h in s]) / len(s)
for s in h_series
])
best_harmonic_series = pd.DataFrame(
h_series[max_harmonic_amp_idx],
columns=['Frequency [Hz]', 'Amplitude [m/s^2]']
)
best_harmonic_series.index += 1
display(tabulate(best_harmonic_series, headers='keys', tablefmt='html'))
# Plot found harmonic series
fig, ax = plt.subplots(1, 8, figsize=(30, 4))
for i in range(8):
s = h_series[i+1]
if i == max_harmonic_amp_idx:
ax[i].xaxis.label.set_color('red')
ax[i].plot(freqs, Pxx.T[i_window])
ax[i].scatter([x[0] for x in s], [x[1] for x in s], marker='^', color='red')
ax[i].set_xlabel('Frequency [Hz]')
plt.show()
def show_spectra_largest_amplitudes(spectrograms: list, axis: str, t: float):
for name, freqs, Pxx in spectrograms:
display(Markdown(f'**{name}** ({axis.upper()} axis @ {t}s)'))
i_window = window_idx(t)
x_fundamental = get_max_frequency(freqs, Pxx, i_window)
peaks = get_peaks(freqs, Pxx, i_window)
display(Markdown(f'- *Fundamental frequency:* {x_fundamental} Hz'))
display(tabulate(peaks.head(5), headers='keys', tablefmt='html'))
Spectrogram in X axis
x_spectra = get_spectrograms(DATASET, 'x')
1_still.tsv (X axis, Fundamental = 18.4550 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
2_still.tsv (X axis, Fundamental = 20.3529 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
3_still.tsv (X axis, Fundamental = 21.9890 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
1_up.tsv (X axis, Fundamental = 18.5205 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
2_up.tsv (X axis, Fundamental = 20.4183 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
3_up.tsv (X axis, Fundamental = 22.0544 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
1_down.tsv (X axis, Fundamental = 17.2116 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
2_down.tsv (X axis, Fundamental = 20.3529 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
3_down.tsv (X axis, Fundamental = 21.4000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
Spectrogram detail in X axis
show_spectrogram_detail(x_spectra, 'x', T_SEC)
1_still.tsv (X axis @ 5s)
2_still.tsv (X axis @ 5s)
3_still.tsv (X axis @ 5s)
1_up.tsv (X axis @ 5s)
2_up.tsv (X axis @ 5s)
3_up.tsv (X axis @ 5s)
1_down.tsv (X axis @ 5s)
2_down.tsv (X axis @ 5s)
3_down.tsv (X axis @ 5s)
Peaks in frequency spectrum in X axis
- MMS peak finder algorithm
show_mms_peaks(x_spectra, 'x', T_SEC)
1_still.tsv (X axis @ 5s)
2_still.tsv (X axis @ 5s)
3_still.tsv (X axis @ 5s)
1_up.tsv (X axis @ 5s)
2_up.tsv (X axis @ 5s)
3_up.tsv (X axis @ 5s)
1_down.tsv (X axis @ 5s)
2_down.tsv (X axis @ 5s)
3_down.tsv (X axis @ 5s)
Harmonic series detection in X axis
show_harmonic_series(x_spectra, 'x', T_SEC)
1_still.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 19.5312 | 0.546024 |
| 2 | 36.6211 | 0.0221022 |
| 3 | 56.1523 | 0.0854366 |
| 4 | 73.2422 | 0.00486936 |
| 5 | 92.7734 | 0.00363132 |
| 6 | 134.277 | 0.00462071 |
| 7 | 285.645 | 0.00223661 |
| 8 | 778.809 | 0.00111313 |
2_still.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 19.5312 | 1.60475 |
| 2 | 41.5039 | 0.476521 |
| 3 | 61.0352 | 0.128852 |
| 4 | 73.2422 | 0.00488967 |
| 5 | 134.277 | 0.00695457 |
| 6 | 229.492 | 0.0033906 |
| 7 | 437.012 | 0.00108532 |
| 8 | 1044.92 | 0.000367557 |
3_still.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 21.9727 | 1.49894 |
| 2 | 43.9453 | 0.252232 |
| 3 | 65.918 | 0.185653 |
| 4 | 87.8906 | 0.0101309 |
| 5 | 185.547 | 0.00249273 |
| 6 | 292.969 | 0.00785039 |
| 7 | 314.941 | 0.011506 |
1_up.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 17.0898 | 0.468103 |
| 2 | 36.6211 | 0.0218309 |
| 3 | 53.7109 | 0.300899 |
| 4 | 70.8008 | 0.0112762 |
| 5 | 136.719 | 0.00141639 |
| 6 | 205.078 | 0.00174178 |
| 7 | 458.984 | 0.000805989 |
2_up.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 19.5312 | 2.06101 |
| 2 | 41.5039 | 0.291134 |
| 3 | 61.0352 | 0.0746276 |
| 4 | 78.125 | 0.0223562 |
| 5 | 112.305 | 0.0122052 |
| 6 | 209.961 | 0.00244761 |
| 7 | 361.328 | 0.00291835 |
| 8 | 437.012 | 0.000683408 |
3_up.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 21.9727 | 1.00514 |
| 2 | 43.9453 | 0.206071 |
| 3 | 65.918 | 0.145704 |
| 4 | 87.8906 | 0.00827826 |
| 5 | 146.484 | 0.00109411 |
| 6 | 187.988 | 0.00169469 |
| 7 | 314.941 | 0.0100025 |
1_down.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 4.88281 | 0.00608786 |
| 2 | 9.76562 | 0.00201308 |
| 3 | 9.76562 | 0.00201308 |
| 4 | 17.0898 | 0.0147896 |
| 5 | 24.4141 | 0.00791007 |
| 6 | 31.7383 | 0.00874098 |
| 7 | 63.4766 | 0.00307372 |
| 8 | 288.086 | 0.000580757 |
2_down.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 4.88281 | 0.0179338 |
| 2 | 4.88281 | 0.0179338 |
| 3 | 12.207 | 0.00271084 |
| 4 | 19.5312 | 0.0323693 |
| 5 | 19.5312 | 0.0323693 |
| 6 | 26.8555 | 0.00722242 |
| 7 | 80.5664 | 0.00146388 |
| 8 | 144.043 | 0.0021425 |
| 9 | 520.02 | 0.000464282 |
3_down.tsv (X axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 4.88281 | 0.0178097 |
| 2 | 4.88281 | 0.0178097 |
| 3 | 21.9727 | 0.0823231 |
| 4 | 21.9727 | 0.0823231 |
| 5 | 31.7383 | 0.0157251 |
| 6 | 43.9453 | 0.0165751 |
| 7 | 100.098 | 0.0016314 |
| 8 | 375.977 | 0.000959079 |
| 9 | 895.996 | 0.000618653 |
show_spectra_largest_amplitudes(x_spectra, 'x', T_SEC)
1_still.tsv (X axis @ 5s)
- Fundamental frequency: 19.53125 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 19.5312 | 0.546024 | 1 |
| 1 | 195.312 | 0.00964576 | 10 |
| 2 | 134.277 | 0.00462071 | 6.875 |
| 3 | 214.844 | 0.00275034 | 11 |
| 4 | 412.598 | 0.00243231 | 21.125 |
2_still.tsv (X axis @ 5s)
- Fundamental frequency: 19.53125 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 19.5312 | 1.60475 | 1 |
| 1 | 51.2695 | 0.0283099 | 2.625 |
| 2 | 195.312 | 0.010183 | 10 |
| 3 | 273.438 | 0.00566994 | 14 |
| 4 | 332.031 | 0.00470596 | 17 |
3_still.tsv (X axis @ 5s)
- Fundamental frequency: 21.97265625 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 21.9727 | 1.49894 | 1 |
| 1 | 314.941 | 0.011506 | 14.3333 |
| 2 | 329.59 | 0.00853408 | 15 |
| 3 | 97.6562 | 0.00731069 | 4.44444 |
| 4 | 9.76562 | 0.00419778 | 0.444444 |
1_up.tsv (X axis @ 5s)
- Fundamental frequency: 17.08984375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 17.0898 | 0.468103 | 1 |
| 1 | 70.8008 | 0.0112762 | 4.14286 |
| 2 | 295.41 | 0.00670006 | 17.2857 |
| 3 | 144.043 | 0.00419564 | 8.42857 |
| 4 | 87.8906 | 0.00272608 | 5.14286 |
2_up.tsv (X axis @ 5s)
- Fundamental frequency: 19.53125 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 19.5312 | 2.06101 | 1 |
| 1 | 78.125 | 0.0223562 | 4 |
| 2 | 178.223 | 0.00997867 | 9.125 |
| 3 | 307.617 | 0.00613189 | 15.75 |
| 4 | 314.941 | 0.00486118 | 16.125 |
3_up.tsv (X axis @ 5s)
- Fundamental frequency: 21.97265625 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 21.9727 | 1.00514 | 1 |
| 1 | 195.312 | 0.0102214 | 8.88889 |
| 2 | 292.969 | 0.00891474 | 13.3333 |
| 3 | 12.207 | 0.00589523 | 0.555556 |
| 4 | 163.574 | 0.00447052 | 7.44444 |
1_down.tsv (X axis @ 5s)
- Fundamental frequency: 17.08984375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 17.0898 | 0.0147896 | 1 |
| 1 | 53.7109 | 0.00494662 | 3.14286 |
| 2 | 205.078 | 0.00197908 | 12 |
| 3 | 83.0078 | 0.00169884 | 4.85714 |
| 4 | 173.34 | 0.00152013 | 10.1429 |
2_down.tsv (X axis @ 5s)
- Fundamental frequency: 19.53125 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 19.5312 | 0.0323693 | 1 |
| 1 | 48.8281 | 0.00282413 | 2.5 |
| 2 | 163.574 | 0.00189572 | 8.375 |
| 3 | 361.328 | 0.00152447 | 18.5 |
| 4 | 80.5664 | 0.00146388 | 4.125 |
3_down.tsv (X axis @ 5s)
- Fundamental frequency: 21.97265625 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 21.9727 | 0.0823231 | 1 |
| 1 | 65.918 | 0.006334 | 3 |
| 2 | 190.43 | 0.00178213 | 8.66667 |
| 3 | 339.355 | 0.00146555 | 15.4444 |
| 4 | 283.203 | 0.00120351 | 12.8889 |
Spectrogram in Y axis
y_spectra = get_spectrograms(DATASET, 'y')
1_still.tsv (Y axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
2_still.tsv (Y axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
3_still.tsv (Y axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
1_up.tsv (Y axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
2_up.tsv (Y axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
3_up.tsv (Y axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
1_down.tsv (Y axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
2_down.tsv (Y axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
3_down.tsv (Y axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
Spectrogram detail in Y axis
show_spectrogram_detail(y_spectra, 'y', T_SEC)
1_still.tsv (Y axis @ 5s)
2_still.tsv (Y axis @ 5s)
3_still.tsv (Y axis @ 5s)
1_up.tsv (Y axis @ 5s)
2_up.tsv (Y axis @ 5s)
3_up.tsv (Y axis @ 5s)
1_down.tsv (Y axis @ 5s)
2_down.tsv (Y axis @ 5s)
3_down.tsv (Y axis @ 5s)
Peaks in frequency spectrum in Y axis
show_mms_peaks(y_spectra, 'y', T_SEC)
1_still.tsv (Y axis @ 5s)
2_still.tsv (Y axis @ 5s)
3_still.tsv (Y axis @ 5s)
1_up.tsv (Y axis @ 5s)
2_up.tsv (Y axis @ 5s)
3_up.tsv (Y axis @ 5s)
1_down.tsv (Y axis @ 5s)
2_down.tsv (Y axis @ 5s)
3_down.tsv (Y axis @ 5s)
Harmonic series detection in Y axis
show_harmonic_series(y_spectra, 'y', T_SEC)
1_still.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 19.5312 | 0.546024 |
| 2 | 36.6211 | 0.0221022 |
| 3 | 56.1523 | 0.0854366 |
| 4 | 73.2422 | 0.00486936 |
| 5 | 92.7734 | 0.00363132 |
| 6 | 134.277 | 0.00462071 |
| 7 | 285.645 | 0.00223661 |
| 8 | 778.809 | 0.00111313 |
2_still.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 19.5312 | 1.60475 |
| 2 | 41.5039 | 0.476521 |
| 3 | 61.0352 | 0.128852 |
| 4 | 73.2422 | 0.00488967 |
| 5 | 134.277 | 0.00695457 |
| 6 | 229.492 | 0.0033906 |
| 7 | 437.012 | 0.00108532 |
| 8 | 1044.92 | 0.000367557 |
3_still.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 21.9727 | 1.49894 |
| 2 | 43.9453 | 0.252232 |
| 3 | 65.918 | 0.185653 |
| 4 | 87.8906 | 0.0101309 |
| 5 | 185.547 | 0.00249273 |
| 6 | 292.969 | 0.00785039 |
| 7 | 314.941 | 0.011506 |
1_up.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 17.0898 | 0.468103 |
| 2 | 36.6211 | 0.0218309 |
| 3 | 53.7109 | 0.300899 |
| 4 | 70.8008 | 0.0112762 |
| 5 | 136.719 | 0.00141639 |
| 6 | 205.078 | 0.00174178 |
| 7 | 458.984 | 0.000805989 |
2_up.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 19.5312 | 2.06101 |
| 2 | 41.5039 | 0.291134 |
| 3 | 61.0352 | 0.0746276 |
| 4 | 78.125 | 0.0223562 |
| 5 | 112.305 | 0.0122052 |
| 6 | 209.961 | 0.00244761 |
| 7 | 361.328 | 0.00291835 |
| 8 | 437.012 | 0.000683408 |
3_up.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 21.9727 | 1.00514 |
| 2 | 43.9453 | 0.206071 |
| 3 | 65.918 | 0.145704 |
| 4 | 87.8906 | 0.00827826 |
| 5 | 146.484 | 0.00109411 |
| 6 | 187.988 | 0.00169469 |
| 7 | 314.941 | 0.0100025 |
1_down.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 4.88281 | 0.00608786 |
| 2 | 9.76562 | 0.00201308 |
| 3 | 9.76562 | 0.00201308 |
| 4 | 17.0898 | 0.0147896 |
| 5 | 24.4141 | 0.00791007 |
| 6 | 31.7383 | 0.00874098 |
| 7 | 63.4766 | 0.00307372 |
| 8 | 288.086 | 0.000580757 |
2_down.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 4.88281 | 0.0179338 |
| 2 | 4.88281 | 0.0179338 |
| 3 | 12.207 | 0.00271084 |
| 4 | 19.5312 | 0.0323693 |
| 5 | 19.5312 | 0.0323693 |
| 6 | 26.8555 | 0.00722242 |
| 7 | 80.5664 | 0.00146388 |
| 8 | 144.043 | 0.0021425 |
| 9 | 520.02 | 0.000464282 |
3_down.tsv (Y axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 4.88281 | 0.0178097 |
| 2 | 4.88281 | 0.0178097 |
| 3 | 21.9727 | 0.0823231 |
| 4 | 21.9727 | 0.0823231 |
| 5 | 31.7383 | 0.0157251 |
| 6 | 43.9453 | 0.0165751 |
| 7 | 100.098 | 0.0016314 |
| 8 | 375.977 | 0.000959079 |
| 9 | 895.996 | 0.000618653 |
show_spectra_largest_amplitudes(y_spectra, 'y', T_SEC)
1_still.tsv (Y axis @ 5s)
- Fundamental frequency: 19.53125 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 19.5312 | 0.546024 | 1 |
| 1 | 195.312 | 0.00964576 | 10 |
| 2 | 134.277 | 0.00462071 | 6.875 |
| 3 | 214.844 | 0.00275034 | 11 |
| 4 | 412.598 | 0.00243231 | 21.125 |
2_still.tsv (Y axis @ 5s)
- Fundamental frequency: 19.53125 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 19.5312 | 1.60475 | 1 |
| 1 | 51.2695 | 0.0283099 | 2.625 |
| 2 | 195.312 | 0.010183 | 10 |
| 3 | 273.438 | 0.00566994 | 14 |
| 4 | 332.031 | 0.00470596 | 17 |
3_still.tsv (Y axis @ 5s)
- Fundamental frequency: 21.97265625 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 21.9727 | 1.49894 | 1 |
| 1 | 314.941 | 0.011506 | 14.3333 |
| 2 | 329.59 | 0.00853408 | 15 |
| 3 | 97.6562 | 0.00731069 | 4.44444 |
| 4 | 9.76562 | 0.00419778 | 0.444444 |
1_up.tsv (Y axis @ 5s)
- Fundamental frequency: 17.08984375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 17.0898 | 0.468103 | 1 |
| 1 | 70.8008 | 0.0112762 | 4.14286 |
| 2 | 295.41 | 0.00670006 | 17.2857 |
| 3 | 144.043 | 0.00419564 | 8.42857 |
| 4 | 87.8906 | 0.00272608 | 5.14286 |
2_up.tsv (Y axis @ 5s)
- Fundamental frequency: 19.53125 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 19.5312 | 2.06101 | 1 |
| 1 | 78.125 | 0.0223562 | 4 |
| 2 | 178.223 | 0.00997867 | 9.125 |
| 3 | 307.617 | 0.00613189 | 15.75 |
| 4 | 314.941 | 0.00486118 | 16.125 |
3_up.tsv (Y axis @ 5s)
- Fundamental frequency: 21.97265625 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 21.9727 | 1.00514 | 1 |
| 1 | 195.312 | 0.0102214 | 8.88889 |
| 2 | 292.969 | 0.00891474 | 13.3333 |
| 3 | 12.207 | 0.00589523 | 0.555556 |
| 4 | 163.574 | 0.00447052 | 7.44444 |
1_down.tsv (Y axis @ 5s)
- Fundamental frequency: 17.08984375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 17.0898 | 0.0147896 | 1 |
| 1 | 53.7109 | 0.00494662 | 3.14286 |
| 2 | 205.078 | 0.00197908 | 12 |
| 3 | 83.0078 | 0.00169884 | 4.85714 |
| 4 | 173.34 | 0.00152013 | 10.1429 |
2_down.tsv (Y axis @ 5s)
- Fundamental frequency: 19.53125 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 19.5312 | 0.0323693 | 1 |
| 1 | 48.8281 | 0.00282413 | 2.5 |
| 2 | 163.574 | 0.00189572 | 8.375 |
| 3 | 361.328 | 0.00152447 | 18.5 |
| 4 | 80.5664 | 0.00146388 | 4.125 |
3_down.tsv (Y axis @ 5s)
- Fundamental frequency: 21.97265625 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 21.9727 | 0.0823231 | 1 |
| 1 | 65.918 | 0.006334 | 3 |
| 2 | 190.43 | 0.00178213 | 8.66667 |
| 3 | 339.355 | 0.00146555 | 15.4444 |
| 4 | 283.203 | 0.00120351 | 12.8889 |
Spectrogram in Z axis
z_spectra = get_spectrograms(DATASET, 'z')
1_still.tsv (Z axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
2_still.tsv (Z axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
3_still.tsv (Z axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
1_up.tsv (Z axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
2_up.tsv (Z axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
3_up.tsv (Z axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
1_down.tsv (Z axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
2_down.tsv (Z axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
3_down.tsv (Z axis, Fundamental = 0.0000 Hz)
Window size: 1024 Heinsenberg box Time step: 409.6 ms Frequency step: 2.44140625 Hz
Spectrogram detail in Z axis
show_spectrogram_detail(z_spectra, 'z', T_SEC)
1_still.tsv (Z axis @ 5s)
2_still.tsv (Z axis @ 5s)
3_still.tsv (Z axis @ 5s)
1_up.tsv (Z axis @ 5s)
2_up.tsv (Z axis @ 5s)
3_up.tsv (Z axis @ 5s)
1_down.tsv (Z axis @ 5s)
2_down.tsv (Z axis @ 5s)
3_down.tsv (Z axis @ 5s)
Peaks in frequency spectrum in Z axis
show_mms_peaks(z_spectra, 'z', T_SEC)
1_still.tsv (Z axis @ 5s)
2_still.tsv (Z axis @ 5s)
3_still.tsv (Z axis @ 5s)
1_up.tsv (Z axis @ 5s)
2_up.tsv (Z axis @ 5s)
3_up.tsv (Z axis @ 5s)
1_down.tsv (Z axis @ 5s)
2_down.tsv (Z axis @ 5s)
3_down.tsv (Z axis @ 5s)
Harmonic series detection in Z axis
show_harmonic_series(z_spectra, 'z', T_SEC)
1_still.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 19.5312 | 0.546024 |
| 2 | 36.6211 | 0.0221022 |
| 3 | 56.1523 | 0.0854366 |
| 4 | 73.2422 | 0.00486936 |
| 5 | 92.7734 | 0.00363132 |
| 6 | 134.277 | 0.00462071 |
| 7 | 285.645 | 0.00223661 |
| 8 | 778.809 | 0.00111313 |
2_still.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 19.5312 | 1.60475 |
| 2 | 41.5039 | 0.476521 |
| 3 | 61.0352 | 0.128852 |
| 4 | 73.2422 | 0.00488967 |
| 5 | 134.277 | 0.00695457 |
| 6 | 229.492 | 0.0033906 |
| 7 | 437.012 | 0.00108532 |
| 8 | 1044.92 | 0.000367557 |
3_still.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 21.9727 | 1.49894 |
| 2 | 43.9453 | 0.252232 |
| 3 | 65.918 | 0.185653 |
| 4 | 87.8906 | 0.0101309 |
| 5 | 185.547 | 0.00249273 |
| 6 | 292.969 | 0.00785039 |
| 7 | 314.941 | 0.011506 |
1_up.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 17.0898 | 0.468103 |
| 2 | 36.6211 | 0.0218309 |
| 3 | 53.7109 | 0.300899 |
| 4 | 70.8008 | 0.0112762 |
| 5 | 136.719 | 0.00141639 |
| 6 | 205.078 | 0.00174178 |
| 7 | 458.984 | 0.000805989 |
2_up.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 19.5312 | 2.06101 |
| 2 | 41.5039 | 0.291134 |
| 3 | 61.0352 | 0.0746276 |
| 4 | 78.125 | 0.0223562 |
| 5 | 112.305 | 0.0122052 |
| 6 | 209.961 | 0.00244761 |
| 7 | 361.328 | 0.00291835 |
| 8 | 437.012 | 0.000683408 |
3_up.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 21.9727 | 1.00514 |
| 2 | 43.9453 | 0.206071 |
| 3 | 65.918 | 0.145704 |
| 4 | 87.8906 | 0.00827826 |
| 5 | 146.484 | 0.00109411 |
| 6 | 187.988 | 0.00169469 |
| 7 | 314.941 | 0.0100025 |
1_down.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 4.88281 | 0.00608786 |
| 2 | 9.76562 | 0.00201308 |
| 3 | 9.76562 | 0.00201308 |
| 4 | 17.0898 | 0.0147896 |
| 5 | 24.4141 | 0.00791007 |
| 6 | 31.7383 | 0.00874098 |
| 7 | 63.4766 | 0.00307372 |
| 8 | 288.086 | 0.000580757 |
2_down.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 4.88281 | 0.0179338 |
| 2 | 4.88281 | 0.0179338 |
| 3 | 12.207 | 0.00271084 |
| 4 | 19.5312 | 0.0323693 |
| 5 | 19.5312 | 0.0323693 |
| 6 | 26.8555 | 0.00722242 |
| 7 | 80.5664 | 0.00146388 |
| 8 | 144.043 | 0.0021425 |
| 9 | 520.02 | 0.000464282 |
3_down.tsv (Z axis @ 5s)
| Frequency [Hz] | Amplitude [m/s^2] | |
|---|---|---|
| 1 | 4.88281 | 0.0178097 |
| 2 | 4.88281 | 0.0178097 |
| 3 | 21.9727 | 0.0823231 |
| 4 | 21.9727 | 0.0823231 |
| 5 | 31.7383 | 0.0157251 |
| 6 | 43.9453 | 0.0165751 |
| 7 | 100.098 | 0.0016314 |
| 8 | 375.977 | 0.000959079 |
| 9 | 895.996 | 0.000618653 |
show_spectra_largest_amplitudes(z_spectra, 'z', T_SEC)
1_still.tsv (Z axis @ 5s)
- Fundamental frequency: 19.53125 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 19.5312 | 0.546024 | 1 |
| 1 | 195.312 | 0.00964576 | 10 |
| 2 | 134.277 | 0.00462071 | 6.875 |
| 3 | 214.844 | 0.00275034 | 11 |
| 4 | 412.598 | 0.00243231 | 21.125 |
2_still.tsv (Z axis @ 5s)
- Fundamental frequency: 19.53125 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 19.5312 | 1.60475 | 1 |
| 1 | 51.2695 | 0.0283099 | 2.625 |
| 2 | 195.312 | 0.010183 | 10 |
| 3 | 273.438 | 0.00566994 | 14 |
| 4 | 332.031 | 0.00470596 | 17 |
3_still.tsv (Z axis @ 5s)
- Fundamental frequency: 21.97265625 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 21.9727 | 1.49894 | 1 |
| 1 | 314.941 | 0.011506 | 14.3333 |
| 2 | 329.59 | 0.00853408 | 15 |
| 3 | 97.6562 | 0.00731069 | 4.44444 |
| 4 | 9.76562 | 0.00419778 | 0.444444 |
1_up.tsv (Z axis @ 5s)
- Fundamental frequency: 17.08984375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 17.0898 | 0.468103 | 1 |
| 1 | 70.8008 | 0.0112762 | 4.14286 |
| 2 | 295.41 | 0.00670006 | 17.2857 |
| 3 | 144.043 | 0.00419564 | 8.42857 |
| 4 | 87.8906 | 0.00272608 | 5.14286 |
2_up.tsv (Z axis @ 5s)
- Fundamental frequency: 19.53125 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 19.5312 | 2.06101 | 1 |
| 1 | 78.125 | 0.0223562 | 4 |
| 2 | 178.223 | 0.00997867 | 9.125 |
| 3 | 307.617 | 0.00613189 | 15.75 |
| 4 | 314.941 | 0.00486118 | 16.125 |
3_up.tsv (Z axis @ 5s)
- Fundamental frequency: 21.97265625 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 21.9727 | 1.00514 | 1 |
| 1 | 195.312 | 0.0102214 | 8.88889 |
| 2 | 292.969 | 0.00891474 | 13.3333 |
| 3 | 12.207 | 0.00589523 | 0.555556 |
| 4 | 163.574 | 0.00447052 | 7.44444 |
1_down.tsv (Z axis @ 5s)
- Fundamental frequency: 17.08984375 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 17.0898 | 0.0147896 | 1 |
| 1 | 53.7109 | 0.00494662 | 3.14286 |
| 2 | 205.078 | 0.00197908 | 12 |
| 3 | 83.0078 | 0.00169884 | 4.85714 |
| 4 | 173.34 | 0.00152013 | 10.1429 |
2_down.tsv (Z axis @ 5s)
- Fundamental frequency: 19.53125 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 19.5312 | 0.0323693 | 1 |
| 1 | 48.8281 | 0.00282413 | 2.5 |
| 2 | 163.574 | 0.00189572 | 8.375 |
| 3 | 361.328 | 0.00152447 | 18.5 |
| 4 | 80.5664 | 0.00146388 | 4.125 |
3_down.tsv (Z axis @ 5s)
- Fundamental frequency: 21.97265625 Hz
| f | y | 1x | |
|---|---|---|---|
| 0 | 21.9727 | 0.0823231 | 1 |
| 1 | 65.918 | 0.006334 | 3 |
| 2 | 190.43 | 0.00178213 | 8.66667 |
| 3 | 339.355 | 0.00146555 | 15.4444 |
| 4 | 283.203 | 0.00120351 | 12.8889 |
Histogram
axis = ['x', 'y', 'z']
for name, ts in DATASET:
display(Markdown(f'**{name}**'))
ts[axis].hist(figsize=(10, 5), grid=True, bins=50)
plt.show()
1_still.tsv
2_still.tsv
3_still.tsv
1_up.tsv
2_up.tsv
3_up.tsv
1_down.tsv
2_down.tsv
3_down.tsv
Orbitals of all cross sections
for name, ts in DATASET:
display(Markdown(f'**{name}**'))
fig, ax = plt.subplots(1, 3, figsize=(20, 4))
for i, col in enumerate([('x', 'y'), ('x', 'z'), ('y', 'z')]):
ax[i].scatter(ts[col[0]], ts[col[1]], s=1)
ax[i].grid(True)
ax[i].set_xlabel(col[0].upper())
ax[i].set_ylabel(col[1].upper())
ax[i].grid(True)
plt.show() # plt.savefig('orbitals.png')
1_still.tsv
2_still.tsv
3_still.tsv
1_up.tsv
2_up.tsv
3_up.tsv
1_down.tsv
2_down.tsv
3_down.tsv
Orbitals of 1x harmonic frequency
x_spectra_by_name = {spec[0]: spec for spec in x_spectra}
y_spectra_by_name = {spec[0]: spec for spec in y_spectra}
z_spectra_by_name = {spec[0]: spec for spec in z_spectra}
t = 5
space = 5
for name, ts in DATASET:
display(Markdown(f'**{name}**'))
fig, ax = plt.subplots(1, 3, figsize=(20, 4))
name, freqs, Pxx = x_spectra_by_name[name]
x_fundamental = get_max_frequency(freqs, Pxx, window_idx(t))
name, freqs, Pxx = y_spectra_by_name[name]
y_fundamental = get_max_frequency(freqs, Pxx, window_idx(t))
name, freqs, Pxx = z_spectra_by_name[name]
z_fundamental = get_max_frequency(freqs, Pxx, window_idx(t))
ts['x_1x'] = butter_bandpass_filter(ts['x'], x_fundamental - space, x_fundamental + space, Fs)
ts['y_1x'] = butter_bandpass_filter(ts['y'], y_fundamental - space, y_fundamental + space, Fs)
ts['z_1x'] = butter_bandpass_filter(ts['z'], z_fundamental - space, z_fundamental + space, Fs)
for i, col in enumerate([('x_1x', 'y_1x'), ('x_1x', 'z_1x'), ('y_1x', 'z_1x')]):
ax[i].scatter(ts[col[0]], ts[col[1]], s=1)
ax[i].grid(True)
ax[i].set_xlabel(col[0].upper())
ax[i].set_ylabel(col[1].upper())
ax[i].grid(True)
plt.show() # plt.savefig('orbitals_1x.png')
1_still.tsv
2_still.tsv
3_still.tsv
1_up.tsv
2_up.tsv
3_up.tsv
1_down.tsv
2_down.tsv
3_down.tsv